Ext.onReady(function() {

			Ext.QuickTips.init();

			/* ---------------------------	Ext.extend	------------------------- */

			function Person(config) {
				// this.name = 'Person';
				// this.name = Ext.value(config.name, 'Person');
				Ext.apply(this, config, {
							name	: 'Person'
						})
			}

			Person.prototype.toString = function() {
				return 'Person toString';
			}

			function Student(config) {
				// this.name = 'Student';
				Student.superclass.constructor.call(this, {
							name	: 'Student'
						});
			}

			Ext.extend(Student, Person, {
						toString	: function() {
							return 'sub toString';
						},
						someMethod2	: function() {
							return 'someMethod2';
						}
					});

			var s = new Student({});

			/* ---------------------------	Ext.override	------------------------- */

			/* ---------------------------	Ext.apply	------------------------- */

			var deftaultObj = {
				deftaultConfig	: ''
			}

			var obj = {
				name	: 'kevin nick',
				age		: 25
			};

			var obj2 = {
				sex	: 'male'
			};

			new Ext.Panel({
						title		: '拷贝obj2属性至obj中 如有重复 则以obj2为准',
						renderTo	: Ext.getBody(),
						width		: 600,
						style		: 'float:left;margin:5px;',
						bodyStyle	: 'padding:10px;',
						html		: '<p><b>Result:</b></p>' + Ext.encode(Ext.apply(obj, obj2, deftaultObj))
					});

			/* ---------------------------	Ext.applyIf	------------------------- */

			var obj = {
				name	: 'kevin nick',
				age		: 25
			};

			var obj2 = {
				age	: 29,
				sex	: 'male'
			};

			new Ext.Panel({
						title		: '拷贝obj中在oj2中不存在的属性',
						renderTo	: Ext.getBody(),
						width		: 600,
						style		: 'float:left;margin:5px;',
						bodyStyle	: 'padding:10px;',
						html		: '<p><b>Result:</b</p>' + Ext.encode(Ext.applyIf(obj, obj2))
					});

			/* ---------------------------	Ext.clean	------------------------- */

			var arr = [1, 2, 3, 4, 5];
			var arr2 = Ext.clean(arr);// var arr2 = arr;
			arr.remove(2);
			new Ext.Panel({
						title		: '拷贝一个新数组',
						renderTo	: Ext.getBody(),
						width		: 600,
						style		: 'float:left;margin:5px;',
						bodyStyle	: 'padding:10px;',
						html		: '<p><b>Result:</b</p>' + Ext.clean(arr2)
					});

			/* ---------------------------	Ext.copyTo	------------------------- */

			var obj = {
				name	: 'kevin nick',
				age		: 25
			};

			var obj2 = {
				age	: 26
			};

			new Ext.Panel({
						title		: '拷贝obj2至obj中 任意选择属性  属性以逗号分隔',
						renderTo	: Ext.getBody(),
						width		: 600,
						style		: 'float:left;margin:5px;',
						bodyStyle	: 'padding:10px;',
						html		: '<p><b>Result:</b</p>' + Ext.encode(Ext.copyTo(obj, obj2, 'age'))
					});

			/* ---------------------------	Ext.decode	------------------------- */

			var json = '{name:\'kevin nick\',age:25}';

			new Ext.Panel({
						title		: '将良构的json字符串编码为对象',
						renderTo	: Ext.getBody(),
						width		: 600,
						style		: 'float:left;margin:5px;',
						bodyStyle	: 'padding:10px;',
						html		: '<p><b>Result:</b</p>' + Ext.encode(Ext.decode(json))
					});

			/* ---------------------------	Ext.flatten	------------------------- */

			var arr = [{
						name	: 'kevin'
					}, {
						name	: 'leo'
					}];
			var arr2 = [{
						name	: 'jack'
					}, {
						name	: 'tom'
					}, arr];

			new Ext.Panel({
						title		: '将原数组中 含有的对象数组和其他对象 构建成一个数组',
						renderTo	: Ext.getBody(),
						width		: 600,
						style		: 'float:left;margin:5px;',
						bodyStyle	: 'padding:10px;',
						html		: '<p><b>Result:</b</p>' + Ext.encode(Ext.flatten(arr2))
					});

			/* ---------------------------	Ext.invoke	------------------------- */

			var person = {
				name	: 'kevin nick',
				eat		: function(name) {
					return this.name + ' eat [' + name + '] too much';
				}
			}
			var person2 = {
				name	: 'jack lee',
				eat		: function(name) {
					return this.name + ' eat [' + name + '] too few';
				}
			}

			var arr = [person, person2];

			new Ext.Panel({
						title		: '方法名以字符串传入 调用数组方法',
						renderTo	: Ext.getBody(),
						width		: 600,
						style		: 'float:left;margin:5px;',
						bodyStyle	: 'padding:10px;',
						html		: '<p><b>Result:</b</p>' + Ext.encode(Ext.invoke(arr, 'eat', 'apple'))
					});

			// 调用对象方法 person['eat']()

			/* ---------------------------	Ext.max	------------------------- */

			var person = {
				name	: 'kevin nick',
				age		: 25
			}
			var person2 = {
				name	: 'jack lee',
				age		: 29
			}
			var arr = [person, person2];

			new Ext.Panel({
						title		: '给出比较规则 获得数组最大值',
						renderTo	: Ext.getBody(),
						width		: 600,
						style		: 'float:left;margin:5px;',
						bodyStyle	: 'padding:10px;',
						html		: '<p><b>Result:</b</p>' + Ext.encode(Ext.max(arr, function(o, o2) {
									return o.age > o2.age;
								}))
					});

			/* ---------------------------	Ext.mean	------------------------- */

			var arr = [1, 2, 3, 4, 5];

			new Ext.Panel({
						title		: '计算数组平均值',
						renderTo	: Ext.getBody(),
						width		: 600,
						style		: 'float:left;margin:5px;',
						bodyStyle	: 'padding:10px;',
						html		: '<p><b>Result:</b</p>' + Ext.encode(Ext.mean(arr))
					});

			/* ---------------------------	Ext.num	------------------------- */

			new Ext.Panel({
						title		: '将如何类型的值转换成合适的 数字格式',
						renderTo	: Ext.getBody(),
						width		: 600,
						style		: 'float:left;margin:5px;',
						bodyStyle	: 'padding:10px;',
						html		: '<p><b>Result:</b</p>' + Ext.encode(Ext.num('null', 0))
					});

			/* ---------------------------	Ext.partition	------------------------- */

			var person = {
				name	: 'kevin nick',
				age		: 25
			}
			var person2 = {
				name	: 'jack lee',
				age		: 29
			}
			var person3 = {
				name	: 'bruce lee',
				age		: 25
			}
			var arr = [person, person2, person3];

			new Ext.Panel({
						title		: '给出分组规则 构建新的一维数组',
						renderTo	: Ext.getBody(),
						width		: 600,
						style		: 'float:left;margin:5px;',
						bodyStyle	: 'padding:10px;',
						html		: '<p><b>Result:</b</p>' + Ext.encode(Ext.partition(arr, function(o) {
									return o.age == 25;
								}))
					});

			/* ---------------------------	Ext.each	------------------------- */

			var sum = 0;
			Ext.each(arr, function(o) {
						return o.age > 25 ? null : sum += o.age;
					})

			new Ext.Panel({
						title		: '遍历数组',
						renderTo	: Ext.getBody(),
						width		: 600,
						style		: 'float:left;margin:5px;',
						bodyStyle	: 'padding:10px;',
						html		: '<p><b>Result:</b</p>' + sum
					});

		});